package com.rzjm.exercise.module.domain.dto;

import com.rzjm.exercise.common.utils.MathUtil;
import lombok.Data;

/**
 *  圆柱体 体积计算
 * @创建者：zhouwei
 * @创建时间：2023/2/10
 * @描述：
 */
@Data
public class Cylinder {
    /**
     *  半径
     */
    double rad;
    /**
     *  高度
     */
    double height;

    /**
     *  长半轴
     */
    double longHalf;

    /**
     *  短半轴
     */
    double shortHalf;

    /**
     * 是否是椭圆  0 - 正圆 1 - 椭圆
     */
    int isEllipse;
    /**
     *  π
     */
    final double PI = 3.1415926;
    //计算底面积
    public double area(){
        System.out.println("底面积 = " + PI * rad * rad);
        if(isEllipse == 0){// 正圆
            return MathUtil.getDoubleUpThree(PI * rad * rad);
        }else{// 椭圆
            //S=π×a×b
            //其中a、b分别是椭圆的长半轴，短半轴的长
            return MathUtil.getDoubleUpThree(PI * longHalf * shortHalf);
        }
    }
    //计算体积
    public double volume(){
        if(isEllipse == 0) {// 正圆
            return MathUtil.getDoubleUpThree((PI * rad * rad) * height);
        }else{//椭圆
//            s=π(圆周率)×a×b(其中a,b分别是椭圆的长半轴,短半轴的长)
//            椭圆形圆柱体体积=s×h(h为圆柱体高度)
//            即椭圆形圆柱体体积=π×a×b×h
            return MathUtil.getDoubleUpThree(PI * longHalf * shortHalf * height);
        }
    }
}
